From: Jasper St. Pierre Date: Wed, 12 Jun 2013 01:06:58 +0000 (-0400) Subject: network: Simplify connections to the firmware signal X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4037 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8bd4895538f62e1b565f85bffa88c6a52ad31bda;p=gnome-shell.git network: Simplify connections to the firmware signal The status item will go away soon, so make sure the one-time fire is given its own function. At the same time, only connect to the signal when the situation actually matters. https://bugzilla.gnome.org/show_bug.cgi?id=701954 --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index da2808cdb..85b40110e 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -376,6 +376,14 @@ const NMDevice = new Lang.Class({ // in the majority of cases (wired, wwan) }, + _firmwareChanged: function() { + if (this._firmwareChangedId) { + GObject.Object.prototype.disconnect.call(this._device, this._firmwareChangedId); + this._firmwareChangedId = 0; + } + this._substateChanged(); + }, + getStatusLabel: function() { if (!this._device) return null; @@ -403,9 +411,10 @@ const NMDevice = new Lang.Class({ // This state is actually a compound of various states (generically unavailable, // firmware missing), that are exposed by different properties (whose state may // or may not updated when we receive state-changed). - if (!this._firmwareChangedId) - this._firmwareChangedId = this._device.connect('notify::firmware-missing', Lang.bind(this, this._substateChanged)); if (this._device.firmware_missing) { + if (!this._firmwareChangedId) + this._firmwareChangedId = this._device.connect('notify::firmware-missing', Lang.bind(this, this._firmwareChanged)); + /* Translators: this is for devices that require some kind of firmware or kernel module, which is missing */ return _("firmware missing"); @@ -522,11 +531,6 @@ const NMDevice = new Lang.Class({ }, _updateStatusItem: function() { - if (this._firmwareChangedId) { - GObject.Object.prototype.disconnect.call(this._device, this._firmwareChangedId); - this._firmwareChangedId = 0; - } - this.statusItem.setStatus(this.getStatusLabel()); this.statusItem.setToggleState(this.connected); },